//这种方法时间复杂度O(n ^ 2)
// var productExceptSelf = function(nums) {
//     let result = []
//     for(let i = 0;i < nums.length;i++){
//         let temp = 1;
//         for(let j = 0;j < nums.length;j++){
//             if(i == j){
//                 continue;
//             }
//             temp *= nums[j]
//         }
//         result.push(temp)
//     }
//     return result;
// }

let productExceptSelf = function (nums) {
    const res = [];
    res[0] = 1;
    for (let i = 1; i < nums.length; i++) {
        res[i] = res[i - 1] * nums[i - 1];
    }

    let right = 1;
    for (let j = nums.length - 1; j >= 0; j--) {
        res[j] *= right;
        right *= nums[j];
    }

    return res;
};
console.log(productExceptSelf([1,2,3,4]))
